OPTIONS:
OPTIMIZATION_LEVEL=0

CONSTANTS:
PAYOUT_01=100
PAYOUT_02= 85
PAYOUT_03= 70
PAYOUT_04= 55
PAYOUT_05= 40
PAYOUT_06= 25
PAYOUT_07= 10
PAYOUT_08=  8
PAYOUT_09=  8
PAYOUT_10=  4
PAYOUT_11=  2

SYMBOLS_REEL_1=22
SYMBOLS_REEL_2=22
SYMBOLS_REEL_3=22

TOTAL_NUMBER_OF_COMBINATIONS=SYMBOLS_REEL_1 * SYMBOLS_REEL_2 * SYMBOLS_REEL_3

PAYOUT_WITHOUT_HOLD=3658

PAYOUT_WITHOUT_HOLD_RATIO=PAYOUT_WITHOUT_HOLD / TOTAL_NUMBER_OF_COMBINATIONS

VARIABLES:
R1={1 .. SYMBOLS_REEL_1}
R2={1 .. SYMBOLS_REEL_2}
R3={1 .. SYMBOLS_REEL_3}

LOCAL_VARIABLES:
S1=(R1=1)*3 +(R1=2)*3 +(R1=3)*4 +(R1=4)*4 +(R1=5)*4 +(R1=6)*4 +(R1=7)*4 +(R1=8)*4 +(R1=9)*4 +(R1=10)*4 +(R1=11)*4 +(R1=12)*5 +(R1=13)*5 +(R1=14)*5 +(R1=15)*5 +(R1=16)*6 +(R1=17)*7 +(R1=18)*7 +(R1=19)*8 +(R1=20)*9 +(R1=21)*10+(R1=22)*11
S2=(R2=1)*3 +(R2=2)*3 +(R2=3)*3 +(R2=4)*4 +(R2=5)*4 +(R2=6)*5 +(R2=7)*5 +(R2=8)*6 +(R2=9)*6 +(R2=10)*6 +(R2=11)*6 +(R2=12)*6 +(R2=13)*6 +(R2=14)*6 +(R2=15)*6 +(R2=16)*6 +(R2=17)*7 +(R2=18)*7 +(R2=19)*8 +(R2=20)*9 +(R2=21)*10+(R2=22)*11
S3=(R3=1)*3 +(R3=2)*3 +(R3=3)*3 +(R3=4)*3 +(R3=5)*3 +(R3=6)*3 +(R3=7)*3 +(R3=8)*3 +(R3=9)*3 +(R3=10)*4 +(R3=11)*4 +(R3=12)*4 +(R3=13)*4 +(R3=14)*4 +(R3=15)*5 +(R3=16)*6 +(R3=17)*7 +(R3=18)*8 +(R3=19)*9 +(R3=20)*10+(R3=21)*11+(R3=22)*12

// 3 Bar
WIN_01=S1=11 && S2=11 && S3=12
// 3 Lygte
WIN_02=S1=10 && S2=10 && S3=11
// 3 Togvogn
WIN_03=S1= 9 && S2= 9 && S3=10
// 3 Slikkepind
WIN_04=S1= 8 && S2= 8 && S3= 9
// 3 Tog
WIN_05=S1= 7 && S2= 7 && S3= 8

// 2 Blomme +1 Blomme eller Bar
WIN_06=S1= 5 && S2= 5 && (S3= 6 || S3= 12)
// 2 Klokke +1 Klokke eller Bar
WIN_07=S1= 6 && S2= 6 && (S3= 7 || S3= 12)
// 2 Appelsin +1 Appelsin eller Bar
WIN_08=S1= 4 && S2= 4 && (S3= 5 || S3= 12)

// 3 Kirsebær
WIN_09=S1= 3 && S2= 3 && S3= 4
// 2 Kirsebær
WIN_10=S1= 3 && S2= 3 && S3!=4
// 1 Kirsebær
WIN_11=S1= 3 && S2!=3



// Generated by OldTrainHoldDataConverter.java start
H500_=S2=5 && S3!=6 && !(S1=4 && S3=5) && S3!=12 && S1!=5 && !(S1=5 && S3=12) && !(S1=5 && S3=6) && !(S1=8 && S3=9) && !(S1=9 && S3=10) && !(S1=7 && S3=8) && !(S1=10 && S3=11) && !(S1=6 && S3=12) && !(S1=6 && S3=7) && !(S1=11 && S3=12) && S3!=6 && S3!=12
H6_=S3=6 && !(S1=4 && S2=4) && !(S1=6 && S2=6) && !(S1=7 && S2=7) && !(S1=5 && S2=5) && S1!=5 && !(S1=8 && S2=8) && !(S1=9 && S2=9) && !(S1=10 && S2=10) && !(S1=11 && S2=11) && S2!=5
H607_=S2=6 && S3=7 && S1!=6 && S1!=6
H40400_=S1=4 && S2=4 && S3!=5 && S3!=12 && S3!=12 && S3!=5
H304_=S2=3 && S3=4
H40005_=S1=4 && S3=5 && S2!=4
H60600_=S1=6 && S2=6 && S3!=12 && S3!=12 && S3!=7
H12_=S3=12 && !(S1=7 && S2=7) && !(S1=5 && S2=5) && S1!=5 && !(S1=8 && S2=8) && !(S1=9 && S2=9) && S2!=4 && !(S1=10 && S2=10) && S1!=6 && S1!=11 && !(S1=11 && S2=11) && S2!=11 && S2!=5
H70700_=S1=7 && S2=7 && S3!=8 && S3!=8
H50500_=S1=5 && S2=5 && S3!=6 && S3!=12
H50012_=S1=5 && S3=12 && S2!=4 && S2!=11 && S2!=5
H50006_=S1=5 && S3=6 && S2!=5
H80009_=S1=8 && S3=9 && S2!=8
H80800_=S1=8 && S2=8 && S3!=9
H809_=S2=8 && S3=9
H90010_=S1=9 && S3=10 && S2!=9
H90900_=S1=9 && S2=9 && S3!=10
H910_=S2=9 && S3=10
H412_=S2=4 && S3=12 && S1!=6 && S1!=11
H405_=S2=4 && S3=5
H70008_=S1=7 && S3=8 && S2!=7
H708_=S2=7 && S3=8
H100011_=S1=10 && S3=11 && S2!=10
H101000_=S1=10 && S2=10 && S3!=11
H1011_=S2=10 && S3=11
H60012_=S1=6 && S3=12 && S2!=11 && S2!=5
H60007_=S1=6 && S3=7
H110012_=S1=11 && S3=12 && S2!=11 && S2!=5
H111100_=S1=11 && S2=11 && S3!=12
H1112_=S2=11 && S3=12
H506_=S2=5 && S3=6
H512_=S2=5 && S3=12


H_TOT=H500_ + H6_ + H607_ + H40400_ + H304_ + H40005_ + H60600_ + H12_ + H70700_ + H50500_ + H50012_ + H50006_ + H80009_ + H80800_ + H809_ + H90010_ + H90900_ + H910_ + H412_ + H405_ + H70008_ + H708_ + H100011_ + H101000_ + H1011_ + H60012_ + H60007_ + H110012_ + H111100_ + H1112_ + H506_ + H512_

H_VALUE=H500_*500 + H6_*6 + H607_*607 + H40400_*40400 + H304_*304 + H40005_*40005 + H60600_*60600 + H12_*12 + H70700_*70700 + H50500_*50500 + H50012_*50012 + H50006_*50006 + H80009_*80009 + H80800_*80800 + H809_*809 + H90010_*90010 + H90900_*90900 + H910_*910 + H412_*412 + H405_*405 + H70008_*70008 + H708_*708 + H100011_*100011 + H101000_*101000 + H1011_*1011 + H60012_*60012 + H60007_*60007 + H110012_*110012 + H111100_*111100 + H1112_*1112 + H506_*506 + H512_*512


P500_=H500_ * 0.5950413223140469
P6_=H6_ * 0.619834710743799
P607_=H607_ * 0.636363636363637
P40400_=H40400_ * 0.7272727272727251
P304_=H304_ * 0.7272727272727261
P40005_=H40005_ * 0.7272727272727301
P60600_=H60600_ * 0.909090909090907
P12_=H12_ * 1.3099173553719001
P70700_=H70700_ * 1.8181818181818201
P50500_=H50500_ * 2.27272727272727
P50012_=H50012_ * 2.27272727272727
P50006_=H50006_ * 2.27272727272727
P80009_=H80009_ * 2.5
P80800_=H80800_ * 2.5
P809_=H809_ * 2.6818181818181803
P90010_=H90010_ * 3.1818181818181803
P90900_=H90900_ * 3.1818181818181803
P910_=H910_ * 3.36363636363637
P412_=H412_ * 3.4545454545454497
P405_=H405_ * 3.4545454545454497
P70008_=H70008_ * 3.6363636363636402
P708_=H708_ * 3.8181818181818197
P100011_=H100011_ * 3.8636363636363598
P101000_=H101000_ * 3.8636363636363598
P1011_=H1011_ * 4.04545454545455
P60012_=H60012_ * 4.09090909090909
P60007_=H60007_ * 4.09090909090909
P110012_=H110012_ * 4.54545454545455
P111100_=H111100_ * 4.54545454545455
P1112_=H1112_ * 4.72727272727273
P506_=H506_ * 4.72727272727273
P512_=H512_ * 4.72727272727273


P_TOT=P500_ + P6_ + P607_ + P40400_ + P304_ + P40005_ + P60600_ + P12_ + P70700_ + P50500_ + P50012_ + P50006_ + P80009_ + P80800_ + P809_ + P90010_ + P90900_ + P910_ + P412_ + P405_ + P70008_ + P708_ + P100011_ + P101000_ + P1011_ + P60012_ + P60007_ + P110012_ + P111100_ + P1112_ + P506_ + P512_

// Generated by OldTrainHoldDataConverter.java end


RULES:
WIN_01 + WIN_02 + WIN_03 + WIN_04 + WIN_05 + WIN_06 + WIN_07 + WIN_08 + WIN_09 + WIN_10 + WIN_11 = 0

H_TOT>0

OUTPUT:
${SOLUTION_NUMBER:#:#}  ${R1:#:Reel 1 position}  ${R2:#:Reel 2 position}  ${R3:#:Reel 3 position}  ${S1:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 1 symbol}  ${S2:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 2 symbol}  ${S3:[0# - |1#!!!!!|3# Pyramide |4# Kirsebær |5# Appelsin |6# Blomme |7# Klokke |8# Tog |9# Slikkepind |10# Togvogn |11# Lygte |12# Bar |13#!!!!]:Reel 3 symbol}  ${0:[0#]:Hold} ${H_VALUE/100/100%100>1:[0#-|1#H]:1} ${H_VALUE/100%100>1:[0#-|1#H]:2} ${H_VALUE%100>1:[0#-|1#H]:3}  ${H_VALUE:(#):Value}  ${P_TOT:0.0000%:Payout ratio}
OUTPUT_FOOTER:


MAX(H_TOT): ${MAX(H_TOT)} => ${MAX(H_TOT) > 1:[0#Status ok|1#ERROR!!!]}

Payout for hold pulls (SUM(P_TOT)): ${SUM(P_TOT)}
Number of combinations where a hold should be done (NUMBER_OF_SOLUTIONS): ${NUMBER_OF_SOLUTIONS}
Hold ratio: ${NUMBER_OF_SOLUTIONS} / (${NUMBER_OF_POSSIBLE_VALUES(R1)} * ${NUMBER_OF_POSSIBLE_VALUES(R2)} * ${NUMBER_OF_POSSIBLE_VALUES(R3)}) = ${NUMBER_OF_SOLUTIONS} / (${NUMBER_OF_POSSIBLE_VALUES(R1) * NUMBER_OF_POSSIBLE_VALUES(R2) * NUMBER_OF_POSSIBLE_VALUES(R3)}) = ${NUMBER_OF_SOLUTIONS / (NUMBER_OF_POSSIBLE_VALUES(R1) * NUMBER_OF_POSSIBLE_VALUES(R2) * NUMBER_OF_POSSIBLE_VALUES(R3)):0.0000%}
Payout with hold ratio (Payout for hold pulls / Number of combinations where a hold should be done) = ${SUM(P_TOT):0.0000} / ${NUMBER_OF_SOLUTIONS}): ${SUM(P_TOT) / NUMBER_OF_SOLUTIONS:0.0000%}


Total calculation
Number of combinations where a hold should be done:                         ${NUMBER_OF_SOLUTIONS}
Payout for hold pulls:                                                      ${SUM(P_TOT):0.0000}
Total combinations (${SYMBOLS_REEL_1} * ${SYMBOLS_REEL_3} * ${SYMBOLS_REEL_3}):                                         ${TOTAL_NUMBER_OF_COMBINATIONS}
Payout without hold:                                                        ${PAYOUT_WITHOUT_HOLD}
Payout without hold ratio (${PAYOUT_WITHOUT_HOLD} / ${TOTAL_NUMBER_OF_COMBINATIONS}):                                     ${PAYOUT_WITHOUT_HOLD_RATIO:0.0000%}
Non hold pulls (${TOTAL_NUMBER_OF_COMBINATIONS} - ${NUMBER_OF_SOLUTIONS}):                                              ${TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS}
Non hold payout (${TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS} * ${PAYOUT_WITHOUT_HOLD_RATIO:0.0000}):                                            ${(TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) * PAYOUT_WITHOUT_HOLD_RATIO:0.0000}
Extra pulls:                                                                ${NUMBER_OF_SOLUTIONS}
Extra pulls payout (${NUMBER_OF_SOLUTIONS} * ${PAYOUT_WITHOUT_HOLD_RATIO:0.0000}):                                         ${NUMBER_OF_SOLUTIONS * PAYOUT_WITHOUT_HOLD_RATIO:___0.0000}
Total pulls (${NUMBER_OF_SOLUTIONS} + ${TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS} + ${NUMBER_OF_SOLUTIONS}):                                          ${NUMBER_OF_SOLUTIONS + (TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) + NUMBER_OF_SOLUTIONS}
Total payout (${SUM(P_TOT):0.0000} + ${(TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) * PAYOUT_WITHOUT_HOLD_RATIO:0.0000} + ${NUMBER_OF_SOLUTIONS * PAYOUT_WITHOUT_HOLD_RATIO:___0.0000}):                           ${SUM(P_TOT) + (TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) * PAYOUT_WITHOUT_HOLD_RATIO + NUMBER_OF_SOLUTIONS * PAYOUT_WITHOUT_HOLD_RATIO:0.0000}
Total payout ratio (${SUM(P_TOT) + (TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) * PAYOUT_WITHOUT_HOLD_RATIO + NUMBER_OF_SOLUTIONS * PAYOUT_WITHOUT_HOLD_RATIO:0.0000} / ${NUMBER_OF_SOLUTIONS + (TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) + NUMBER_OF_SOLUTIONS}):                                       ${(SUM(P_TOT) + (TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) * PAYOUT_WITHOUT_HOLD_RATIO + NUMBER_OF_SOLUTIONS * PAYOUT_WITHOUT_HOLD_RATIO) / (NUMBER_OF_SOLUTIONS + (TOTAL_NUMBER_OF_COMBINATIONS - NUMBER_OF_SOLUTIONS) + NUMBER_OF_SOLUTIONS):0.0000%}